<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <link href="../../style.css" rel="stylesheet" type="text/css">
    <link rel="icon" href="../../images/PETSc_RGB-logo.png" type="image/png" sizes="16x16">
    <title>PETSc: Documentation: Changes: 2.3.1</title>
  </head>
  <body>

    <div id="logo">
      <h1>PETSc</h1>
    </div>

    <div id="header">
      <h1><!--begin-->Documentation: Changes: 2.3.1<!--end--></h1>
    </div>

    <hr>

    <div id="sidebar">
      <ul>
        <li><a href="../../index.html">Home</a></li>
        <li><a href="../../download/index.html">Download</a></li>
        <li><a href="../../features/index.html">Features</a></li>
        <li>
          <a href="../../documentation/index.html">Documentation</a>
          <ul>
            <li><a href="../index.html">Manual pages and Users Manual</a></li>
            <li><a href="../referencing.html">Referencing PETSc</a></li>
            <li><a href="../tutorials/index.html">Tutorials</a></li>
            <li><a href="../installation.html">Installation</a></li>
            <li><a href="../saws.html">SAWs</a></li>
            <li>
              <a href="index.html">Changes</a>
              <ul>
                <li><a href="dev.html">dev</a></li>
                <li><a href="313.html">3.13</a></li>
                <li><a href="312.html">3.12</a></li>
                <li><a href="311.html">3.11</a></li>
                <li><a href="310.html">3.10</a></li>
                <li><a href="39.html">3.9</a></li>
                <li><a href="38.html">3.8</a></li>
                <li><a href="37.html">3.7</a></li>
                <li><a href="36.html">3.6</a></li>
                <li><a href="35.html">3.5</a></li>
                <li><a href="34.html">3.4</a></li>
                <li><a href="33.html">3.3</a></li>
                <li><a href="32.html">3.2</a></li>
                <li><a href="31.html">3.1</a></li>
                <li><a href="300.html">3.0.0</a></li>
                <li><a href="233.html">2.3.3</a></li>
                <li><a href="232.html">2.3.2</a></li>
                <li><span class="current">2.3.1</span></li>
                <li><a href="230.html">2.3.0</a></li>
                <li><a href="221.html">2.2.1</a></li>
                <li><a href="220.html">2.2.0</a></li>
                <li><a href="216.html">2.1.6</a></li>
                <li><a href="215.html">2.1.5</a></li>
                <li><a href="213.html">2.1.3</a></li>
                <li><a href="212.html">2.1.2</a></li>
                <li><a href="211.html">2.1.1</a></li>
                <li><a href="21.html">2.1.0</a></li>
                <li><a href="2029.html">2.0.29</a></li>
                <li><a href="2028.html">2.0.28</a></li>
                <li><a href="2024.html">2.0.24</a></li>
                <li><a href="2022.html">2.0.22</a></li>
                <li><a href="2018-21.html">2.0.18-21</a></li>
                <li><a href="2017.html">2.0.17</a></li>
                <li><a href="2016.html">2.0.16</a></li>
                <li><a href="2015.html">2.0.15</a></li>
              </ul>
            </li>
            <li><a href="../bugreporting.html">Bug Reporting</a></li>
            <li><a href="../codemanagement.html">Code Management</a></li>
            <li><a href="../faq.html">FAQ</a></li>
            <li><a href="../license.html">License</a></li>
            <li><a href="../linearsolvertable.html">Linear Solver Table</a></li>
            <li><a href="../nonlinearsolvertable.html">Nonlinear Solver Table</a></li>
	    <li><a href="../taosolvertable.html">TAO Solver Table</a></li>
          </ul>
        </li>
        <li><a href="../../publications/index.html">Applications/Publications</a></li>
        <li><a href="../../miscellaneous/index.html">Miscellaneous</a></li>
        <li><a href="../../miscellaneous/external.html">External Software</a></li>
        <li><a href="https://docs.petsc.org/en/latest/developers/index.html">Developers Site</a></li>
      </ul>
    </div>

    <!--begin-->

    <style type="text/css">
      h2 {
        color: red;
      }

      h4 {
        font-weight: bold;
        text-decoration: underline;
      }
    </style>

    <div id="main">

      <div align="center">
        <h2><a name="CHANGES">CHANGES in PETSc 2.3.1</a></h2>
      </div>

      <h4>General:</h4>

      <ul>
        <li>-log_info is now just -info; PetscLogInfo...() is now PetscInfo...()</li>
        <li>Added TOPS solver components. [requires CCA tools like babel]</li>
        <li>Added supported for IBM BGL with optimzed fortran kernels</li>
        <li>bin/petscarch is removed. Use can give any name to PETSC_ARCH. [if not - configure picks a default name]</li>
        <li>PetscMap is no longer a public PETSc object</li>
      </ul>

      <h4>Vec:</h4>

      <ul>
        <li>
          Changed prototypes for VecMDotBegin(), VecMDotEnd(), VecMTDotBegin(),
          VecMTDotEnd() to confirm with PETSc prototype style
        </li>

        <li>ISColoringCreate() takes another argument</li>
      </ul>

      <h4>Mat:</h4>

      <ul>
        <li>MatScaleSystem() and MatUnscaleSystem() now take arguments b,x instead of x,b</li>
        <li>Added MatSeqAIJSetPreallocationCSR(), MatGetSubMatrixRaw()</li>
        <li>Added MatSolveTranspose() for superlu</li>
        <li>Added support for matrix types MATCSRPERM, MATCRL - for vector based machines.</li>
        <li>Added MatMatMult for seqdense</li>
        <li>Added MatRealPart, ImaginaryPart for AIJ, BAIJ, SBAIJ matrices</li>
        <li>Added MatGetRowUpperTriangular() to mpisbaij matrix</li>
      </ul>

      <h4>PC:</h4>

      <ul>
        <li>PCPrometheusSetCoordinates() changed to PCSetCoordinates()</li>
        <li>Moved src/ksp/pc/pcimpl.h to include/petsc/private/pcimpl.h</li>
        <li>PCPreSolve() and PCPostSolve() now consistently take arguments b,x before sometimes they took x,b</li>
        <li>PCXXXSetYYY() and -pc_xxx_yyyy are now changed to PCFactorSetYYY() and -pc_factor_yyyy for XXX LU, ILU, Cholesky, and ICC</li>
      </ul>

      <h4>KSP:</h4>

      <ul>
        <li>-ksp_view, -ksp_monitor now take an optional filename argument</li>
        <li>Added PetscLLAddPerm() to symbolic LU factorization</li>
      </ul>

      <h4>config/configure.py:</h4>

      <ul>
        <li>Changed --with-64-bit-ints to --with-64-bit-indices</li>
        <li>
          config/configure.py now supports the arguments
          --with-precision=longdouble and --with-precision=int, these currently
          have limited functionality and certain things like binary IO does not
          work.
        </li>

        <li>
          Option --LIBS=&lt;extra libs&gt; for some broken compilers that
          require that require extra system libraries to be linked with
        </li>

        <li>
          Changed --with-fortran-kernels=&lt;0,1&gt; option to
          --with-fortran-kernels=&lt;none,generic,bgl&gt;
        </li>

        <li>Support --with-large-file-io=&lt;bool&gt; which indicates using files larger than 2GB</li>

        <li>
          --with-f90-header, --with-f90-source options merged into a single
          option - for eg: --with-f90-interface=intel8
        </li>

        <li>
          Added --with-is-color-value-type=&lt;char,short&gt;: char gives max
          of 256 colors, short gives max of 65536 colors
        </li>

        <li>
          Configure always tries to build libraries with PIC [or equivalent
          flag] To disable this, use: --with-pic=0
        </li>

        <li>
          Added --with-c-language-support for comiling PETSc with 'c' linkage
          - but with a c++ compiler.
        </li>

        <li>
          ---download-mpich option now defaults to pm=gforker. To use mpd - use
          the additional option --download-mpich-pm=mpd
        </li>

        <li>
          --with-timer option is added [if the user knows MPI_Wtime() is
          accurate/low-overhead on a machine - then use: --with-timer=mpi]
        </li>
      </ul>

      <h4>SNES:</h4>

      <ul>
        <li>-snes-view, -snes_monitor now take an optional filename argument</li>
      </ul>

      <h4>TS:</h4>

      <ul>
        <li>-ts_view, -ts_monitor now take an optional filename argument</li>
      </ul>

      <h4>DA:</h4>
      <h4>DMMG:</h4>

      <ul>
        <li>
          Arguments to DMMGSetKSP() changed. Now the callback which forms the
          linear system matrix can optionally fill also an alternate matrix for
          the preconditioner.
        </li>
      </ul>

      <h4>SYS:</h4>

      <ul>
        <li>PetscViewerFileType changed to PetscFileMode</li>
        <li>PetscViewerSetFileType() changed to PetscViewerFileSetMode()</li>
      </ul>

      <h4>Fortran:</h4>

      <ul>
        <li>
          remove the special libpetscfortran.a [fortran interface &amp;
          c interface now go into the same library]
        </li>

        <li>
          With some f90 compilers - PETSc datatypes [like PetscScalar,PetscInt]
          will use f90 KIND declaration - so if this code is in fixed form
          - there could be errors with lines exceeding 72 char limit
        </li>
      </ul>

      <h4><a href="https://www.mcs.anl.gov/petsc/miscellaneous/external.html">ExternalPackages</a>:</h4>

      <ul>
        <li>PLAPACK support added</li>
        <li>BLOPEX support added</li>
        <li>Updated Pvode interface to the newer Sundials package [configure option --download-sundials=1</li>
        <li>Added --download-mpe=1</li>
        <li>fblaslapack now has complete blas - as required by some external packages</li>
      </ul>

    </div>

    <!--end-->

    <hr>

  </body>
</html>
